- javaScript 中的字符串是不可变的,而数组是可变的。
字符串不可变是指字符串的成员函数不会改变其原始值,而是创建并返回一个新的字符串。而数组的成员函数都是在其原始值上进行操作。
1 | var a = "foo"; |
字符串”借用“数组的非变更方法来处理字符串
1
2
3
4
5
6
7
8
9a.join // undefined
a.map // undefined
var c = Array.prototype.join.call( a, "-" );
var d = Array.prototype.map.call( a, function(v){
return v.toUpperCase() + ".";
}).join( "" );
c; // "f-o-o"
d; // "F.O.O"不同点在于字符串反转。数组有一个字符串没有的可变更成员函数 reverse(); 我们无法”借用“数组的可变更成员函数。因为字符串是不可变的。
通过一个变通,现将字符串转换为数组,待处理完成后在将结果转换回字符串:
1
2var c = a.split( "" ).reverse().join( "" );
c; // "oof"
- 本文作者: 悲小剧
- 本文链接: https://htb58.github.io/2019/09/24/js 字符串借用数组方法/
- 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!